package model;

import java.io.Serializable;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;

@Entity
@NamedQueries( { @NamedQuery(name = "Especialista.findAll", query = "select o from Especialista o") })
public class Especialista implements Serializable {
    @Column(length = 50)
    private String especialidad;
    @Id
    @Column(name = "RUT_ESPECIALISTA", nullable = false, length = 10, insertable = false, updatable = false)
    private String rutEspecialista;
    @OneToMany(mappedBy = "especialista")
    private List<DetalleMantencion> detalleMantencionList;
    @ManyToOne
    @JoinColumn(name = "RUT_ESPECIALISTA")
    private Personal personal2;

    public Especialista() {
    }

    public Especialista(String especialidad, Personal personal2) {
        this.especialidad = especialidad;
        this.personal2 = personal2;
    }

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }

    public String getRutEspecialista() {
        return rutEspecialista;
    }

    public void setRutEspecialista(String rutEspecialista) {
        this.rutEspecialista = rutEspecialista;
    }

    public List<DetalleMantencion> getDetalleMantencionList() {
        return detalleMantencionList;
    }

    public void setDetalleMantencionList(List<DetalleMantencion> detalleMantencionList) {
        this.detalleMantencionList = detalleMantencionList;
    }

    public DetalleMantencion addDetalleMantencion(DetalleMantencion detalleMantencion) {
        getDetalleMantencionList().add(detalleMantencion);
        detalleMantencion.setEspecialista(this);
        return detalleMantencion;
    }

    public DetalleMantencion removeDetalleMantencion(DetalleMantencion detalleMantencion) {
        getDetalleMantencionList().remove(detalleMantencion);
        detalleMantencion.setEspecialista(null);
        return detalleMantencion;
    }

    public Personal getPersonal2() {
        return personal2;
    }

    public void setPersonal2(Personal personal2) {
        this.personal2 = personal2;
        if (personal2 != null) {
            this.rutEspecialista = personal2.getRut();
        }
    }
}
